home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
AMICUS
/
AMICUS15.ADF
/
AmigaBasicProgs
/
Stats
< prev
next >
Wrap
Text File
|
1988-04-20
|
11KB
|
487 lines
'Softball Stats
ON BREAK GOSUB Quit:BREAK ON
PALETTE 0,.4,.4,.4
DIM Stuff(15,20,7), Players$(20)
I=0:X=0:Y=0:Z=0:J=0:G=0:P=0:S=0:a$="":OldItem=1
WINDOW 1,"Softball Stats"
CLS:PRINT "Softball Stats"
GOSUB FirstMenu
GOSUB Check
GOSUB Ld
GOTO Main
FirstMenu:
MENU 1,0,0,"Project"
MENU 1,1,1,"Print "
MENU 1,2,1,""
MENU 1,3,1,"Quit "
MENU 2,0,0,"Add new..."
MENU 2,1,1,"Players "
MENU 2,2,1,"Stats "
MENU 3,0,0,"Sort by..."
MENU 3,1,2," Player "
MENU 3,2,1," At Bats "
MENU 3,3,1," Hits "
MENU 3,4,1," Runs "
MENU 3,5,1," RBI "
MENU 3,6,1," BB "
MENU 3,7,1," AVG "
MENU 4,0,0,""
RETURN
Main:
ON ERROR GOTO 0
MENU 1,0,1:MENU 2,0,1:MENU 3,0,1
Main2:
MenuID=MENU(0)
IF MenuID=0 THEN Main2
MenuItem=MENU(1)
MENU 1,0,0:MENU 2,0,0:MENU 3,0,0
ON MenuID GOSUB Project,Add,SortType
GOTO Main
Project:
ON MenuItem GOSUB Disp,,Quit
RETURN
Add:
ON MenuItem GOSUB Players,Stats
RETURN
Players:
P=P+1
IF P>20 THEN RETURN
CLS:PRINT "Softball Stats"
PRINT :PRINT :PRINT
PRINT "Enter Player's Name: ";
Question ""
Players$(P)=Answer$
IF Players$(P)="" THEN P=P-1:CLS:PRINT "Softball Stats":RETURN
GOTO Players
Stats:
G=G+1
FOR I=1 TO P
TryAgain:
CLS
PRINT "Enter Stats For Game";G
LOCATE 10,1
PRINT "Did ";Players$(I);" play? ";
Question "YES":Answer$=UCASE$(Answer$)
IF LEFT$(Answer$,1)<>"Y" THEN NoBats
CLS:PRINT "Enter Game Stats For Each Player"
LOCATE 8,1
PRINT " Player: ";Players$(I)
PRINT "At Bats: ";:Question ""
Stuff(G,I,1)=VAL(Answer$)
PRINT " Hits: ";:Question ""
Stuff(G,I,2)=VAL(Answer$)
PRINT " Runs: ";:Question ""
Stuff(G,I,3)=VAL(Answer$)
PRINT " RBI: ";:Question ""
Stuff(G,I,4)=VAL(Answer$)
PRINT " BB: ";:Question ""
Stuff(G,I,5)=VAL(Answer$)
IF Stuff(G,I,1)=0 THEN Check2
Stuff(G,I,6)=(Stuff(G,I,2)/Stuff(G,I,1))*1000
Check2:
PRINT :PRINT
PRINT SPC(30);"Is This Correct? (Y/N)"
PRINT SPC(39);
Question "YES"
Answer$=UCASE$(Answer$)
IF LEFT$(Answer$,1)<>"Y" THEN TryAgain
NoBats:
NEXT I
FOR X=1 TO 6
Stuff(0,0,X)=0
NEXT X
FOR X=1 TO P
FOR Y=1 TO 5
Stuff(0,X,Y)=Stuff(0,X,Y)+Stuff(G,X,Y)
Stuff(0,0,Y)=Stuff(0,0,Y)+Stuff(0,X,Y)
NEXT Y,X
FOR X=1 TO P
IF Stuff(0,X,1)=0 THEN Skip
Stuff(0,X,6)=(Stuff(0,X,2)/Stuff(0,X,1))*1000
Skip:
NEXT X
Stuff(0,0,6)=(Stuff(0,0,2)/Stuff(0,0,1))*1000
CLS:PRINT "Enter Stats For Game";G
LOCATE 11,30:PRINT "Writing Stats To Disk"
GOSUB Sv
CLS:PRINT "Softball Stats"
RETURN
Quit:
MENU RESET
CLOSE #2
COLOR 1,0
PALETTE 0,0,.34,.6
CLS
END
SUB Question (Prompt$) STATIC
SHARED Answer$
Flag=0
Y=POS(0):X=CSRLIN:StartY=Y:StartX=X
Answer$=Prompt$:PRINT Answer$;
Y=POS(0):X=CSRLIN:Curs=8*Y
LINE (Curs-8,8*X-8)-(Curs-2,8*X-1),3,bf
Z$=""
Loop2:
Z$=INKEY$
IF Z$="" THEN Loop2
IF Z$=CHR$(8) THEN
LOCATE StartX,StartY
PRINT SPACE$(LEN(Answer$)+1);
LOCATE StartX,StartY
Answer$=""
END IF
IF Z$=CHR$(27) THEN
LOCATE StartX,StartY
PRINT SPACE$(LEN(Answer$)+1);
LOCATE StartX,StartY
Answer$=""
EXIT SUB
END IF
Temp$=Z$:Add=1
Entry:
WHILE Z$<>CHR$(13)
Y=POS(0):X=CSRLIN:Curs=8*Y
LINE (Curs-8,8*X-8)-(Curs-2,8*X-1),3,bf
Loop:
Z$=INKEY$
IF Add=1 THEN Z$=Temp$:Add=0
IF Z$="" THEN Loop
IF Z$=CHR$(27) THEN
IF Answer$="" AND Flag=1 THEN
Z$=CHR$(13)
ELSEIF Answer$="" AND Flag=0 THEN
Z$="":Answer$=Prompt$:Flag=1:PRINT Answer$;:GOTO Entry
END IF
IF Answer$<>"" THEN
LOCATE StartX,StartY
PRINT SPACE$(LEN(Answer$)+1);
LOCATE StartX,StartY
Answer$=""
Y=POS(0):X=CSRLIN:Curs=8*Y
LINE (Curs-8,8*X-8)-(Curs-2,8*X-1),3,bf
GOTO Loop
END IF
END IF
IF Z$=CHR$(8) AND LEN(Answer$)>=1 THEN
LINE (Curs-8,8*X-8)-(Curs-2,8*X-1),0,bf
PRINT CHR$(8);
Answer$=LEFT$(Answer$,LEN(Answer$)-1)
Curs=Curs-8
LINE (Curs-8,8*X-8)-(Curs-2,8*X-1),3,bf
GOTO Loop
END IF
IF ASC(Z$)>=32 AND ASC(Z$)<=126 THEN
Answer$=Answer$+Z$
PRINT Z$;
Z$=""
END IF
WEND
LINE (Curs-8,8*X-8)-(Curs-2,8*X-1),0,bf
END SUB
Sv:
OPEN "Statistics" FOR OUTPUT AS #2
PRINT#2,G,P
FOR Y=0 TO P
PRINT#2,Players$(Y)
NEXT Y
FOR X=0 TO G
FOR Y=0 TO P
FOR Z=1 TO 6
PRINT#2,Stuff(X,Y,Z)
NEXT Z,Y,X
CLOSE #2
RETURN
Ld:
CLS
PRINT "Softball Stats"
LOCATE 11,28:PRINT "Reading File: Statistics"
OPEN "Statistics" FOR INPUT AS #2
INPUT#2,G
IF G=0 THEN CLOSE #2:CLS:PRINT "Softball Stats":RETURN
INPUT#2,P
FOR Y=0 TO P
INPUT#2,Players$(Y)
NEXT Y
FOR X=0 TO G
FOR Y=0 TO P
FOR Z=1 TO 6
INPUT#2,Stuff(X,Y,Z)
NEXT Z,Y,X
CLOSE #2
CLS:PRINT "Softball Stats"
RETURN
Check:
ON ERROR GOTO NotThere
OPEN "Statistics" FOR INPUT AS #2
CLOSE #2
ON ERROR GOTO 0:RETURN
NotThere:
CLOSE #2
IF ERR=53 THEN RESUME FirstTime
STOP
FirstTime:
ON ERROR GOTO 0
G=0:LOCATE 11,30:PRINT "Creating File"
OPEN "Statistics" FOR OUTPUT AS #2
PRINT#2,G:CLOSE #2
CLS:PRINT "Softball Stats"
RETURN
Disp:
CLS
PRINT "Print/Display"
LOCATE 11,30
PRINT "S";:COLOR 2,0:PRINT "creen or ";:COLOR 1,0:PRINT "P";:COLOR 2,0:PRINT "rinter":COLOR 1,0
GetKey:
a$=UCASE$(INKEY$)
IF a$="P" THEN Prtr
IF a$<>"S" THEN GetKey
Scrn:
CLS
PRINT "Display to SCREEN"
LOCATE 11,30
PRINT "C";:COLOR 2,0:PRINT "umulative or ";:COLOR 1,0:PRINT "G";:COLOR 2,0:PRINT "ame":COLOR 1,0
GetKey2:
a$=UCASE$(INKEY$)
IF a$="C" THEN Cum
IF a$<>"G" THEN GetKey2
Gam:
CLS
PRINT "Softball Statistics By Game"
LOCATE 11,30:PRINT "Show Which Game? ";
Question ""
IF VAL(Answer$)>G OR VAL(Answer$)<0 THEN Gam
IF Answer$="" OR Answer$="0" THEN
CLS
PRINT "Softball Stats"
RETURN
END IF
Game=VAL(Answer$)
GOSUB Sort
CLS:PRINT "Softball Statistics For Game";Game
COLOR 2,0
PRINT "Name";SPC(22);"AB";SPC(8);"H";SPC(8);"R";SPC(6);"RBI";SPC(7);"BB";SPC(6)"AVG";
COLOR 1,0
IF OldItem=1 THEN Regular
FOR Y=P TO 1 STEP -1
PRINT:PRINT Players$(Y);TAB(25);
FOR Z=1 TO 6
PRINT USING "####";Stuff(Game,Y,Z);:PRINT SPC(5);
NEXT Z,Y
LOCATE 23,26:COLOR 3,0:PRINT "Press <ESC> To Return To Top";
WHILE a$<>CHR$(27)
a$=INKEY$
WEND
CLS:COLOR 1,0
PRINT "Softball Stats"
RETURN
Regular:
FOR Y=1 TO P
PRINT:PRINT Players$(Y);TAB(25);
FOR Z=1 TO 6
PRINT USING "####";Stuff(Game,Y,Z);:PRINT SPC(5);
NEXT Z,Y
LOCATE 23,26:COLOR 3,0:PRINT "Press <ESC> To Return To Top";
WHILE a$<>CHR$(27)
a$=INKEY$
WEND
CLS:COLOR 1,0
PRINT "Softball Stats"
RETURN
Cum:
CLS:Game=0
PRINT "Cumulative Softball Statistics Through Game";G
GOSUB Sort:CLS
PRINT "Cumulative Softball Statistics Through Game";G
COLOR 2,0
PRINT "Name";SPC(22);"AB";SPC(8);"H";SPC(8);"R";SPC(6);"RBI";SPC(7);"BB";SPC(6)"AVG";
COLOR 1,0
IF OldItem=1 THEN Regular2
FOR Y=P TO 1 STEP -1
PRINT:PRINT Players$(Y);TAB(25);
FOR Z=1 TO 6
PRINT USING "####";Stuff(0,Y,Z);:PRINT SPC(5);
NEXT Z,Y
PRINT
COLOR 2,0
PRINT "Totals";TAB(25);
FOR X=1 TO 6
PRINT USING "####";Stuff(0,0,X);:PRINT SPC(5);
NEXT X:COLOR 1,0
LOCATE 23,26:COLOR 3,0:PRINT "Press <ESC> To Return To Top";
WHILE a$<>CHR$(27)
a$=INKEY$
WEND
CLS:COLOR 1,0
PRINT "Softball Stats"
RETURN
Regular2:
FOR Y=1 TO P
PRINT:PRINT Players$(Y);TAB(25);
FOR Z=1 TO 6
PRINT USING "####";Stuff(0,Y,Z);:PRINT SPC(5);
NEXT Z,Y
PRINT
COLOR 2,0
PRINT "Totals";TAB(25);
FOR X=1 TO 6
PRINT USING "####";Stuff(0,0,X);:PRINT SPC(5);
NEXT X:COLOR 1,0
LOCATE 23,26:COLOR 3,0:PRINT "Press <ESC> To Return To Top";
WHILE a$<>CHR$(27)
a$=INKEY$
WEND
CLS:COLOR 1,0
PRINT "Softball Stats"
RETURN
Prtr:
CLS
PRINT "Print On Printer"
LOCATE 11,30
PRINT "C";:COLOR 2,0:PRINT "umulative or ";:COLOR 1,0:PRINT "G";:COLOR 2,0:PRINT "ame":COLOR 1,0
GetKey3:
a$=UCASE$(INKEY$)
IF a$="C" THEN Cum2
IF a$<>"G" THEN GetKey3
Game2:
CLS
PRINT "Softball Statistics By Game"
LOCATE 11,30:PRINT "Print Which Game? ";
Question ""
IF VAL(Answer$)>G OR VAL(Answer$)<0 THEN Game2
IF Answer$="" OR Answer$="0" THEN
CLS
PRINT "Softball Stats"
RETURN
END IF
Game=VAL(Answer$)
GOSUB Sort
CLS:PRINT "Print Statistics For Game";Game
LPRINT "Softball Statistics For Game";Game
LPRINT:LPRINT
LPRINT "Name";SPC(22);"AB";SPC(8);"H";SPC(8);"R";SPC(6);"RBI";SPC(7);"BB";SPC(6)"AVG"
LPRINT
IF OldItem=1 THEN Regular3
FOR Y=P TO 1 STEP -1
LPRINT Players$(Y);TAB(25);
LPRINT USING "####";Stuff(Game,Y,1);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,2);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,3);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,4);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,5);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,6)
NEXT Y
CLS
PRINT "Softball Stats"
RETURN
Regular3:
FOR Y=1 TO P
LPRINT Players$(Y);TAB(25);
LPRINT USING "####";Stuff(Game,Y,1);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,2);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,3);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,4);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,5);:LPRINT SPC(5);
LPRINT USING "####";Stuff(Game,Y,6)
NEXT Y
CLS
PRINT "Softball Stats"
RETURN
Cum2:
CLS
PRINT "Print Cumulative Softball Statistics Through Game";G
GOSUB Sort:LOCATE 11,1:PRINT SPACE$(60)
LPRINT "Cumulative Softball Statistics Through Game";G
LPRINT:LPRINT
LPRINT "Name";SPC(22);"AB";SPC(8);"H";SPC(8);"R";SPC(6);"RBI";SPC(7);"BB";SPC(6)"AVG"
LPRINT
IF OldItem=1 THEN Regular4
FOR Y=P TO 1 STEP -1
LPRINT Players$(Y);TAB(25);
LPRINT USING "####";Stuff(0,Y,1);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,2);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,3);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,4);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,5);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,6)
NEXT Y
LPRINT
LPRINT "Totals";TAB(25);
FOR X=1 TO 6
LPRINT USING "####";Stuff(0,0,X);:LPRINT SPC(5);
NEXT X:COLOR 1,0
CLS
PRINT "Softball Stats"
RETURN
Regular4:
FOR Y=1 TO P
LPRINT Players$(Y);TAB(25);
LPRINT USING "####";Stuff(0,Y,1);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,2);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,3);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,4);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,5);:LPRINT SPC(5);
LPRINT USING "####";Stuff(0,Y,6)
NEXT Y
LPRINT
LPRINT "Totals";TAB(25);
FOR X=1 TO 6
LPRINT USING "####";Stuff(0,0,X);:LPRINT SPC(5);
NEXT X:COLOR 1,0
CLS
PRINT "Softball Stats"
RETURN
SortType:
MENU 3,MenuItem,2
MENU 3,OldItem,1
OldItem=MenuItem
RETURN
Sort:
LOCATE 11,27:PRINT " SORTING "
IF OldItem=1 THEN SPlayer
FOR X=1 TO P
FOR Y=X+1 TO P
IF Stuff(Game,X,OldItem-1)<Stuff(Game,Y,OldItem-1) THEN NoSwap
FOR J=0 TO G
FOR Z=1 TO 6
SWAP Stuff(J,X,Z),Stuff(J,Y,Z)
NEXT Z,J
SWAP Players$(X),Players$(Y)
NoSwap:
NEXT Y,X
RETURN
SPlayer:
FOR X=1 TO P
FOR Y=X+1 TO P
IF Players$(X)<Players$(Y) THEN NoSwap2
FOR J=0 TO G
FOR Z=1 TO 6
SWAP Stuff(J,X,Z),Stuff(J,Y,Z)
NEXT Z,J
SWAP Players$(X),Players$(Y)
NoSwap2:
NEXT Y,X
RETURN